gtk: Stop setting GDK_EXPOSURE_MASK on random widgets
authorAlexander Larsson <alexl@redhat.com>
Mon, 14 Sep 2015 08:56:13 +0000 (10:56 +0200)
committerAlexander Larsson <alexl@redhat.com>
Mon, 14 Sep 2015 09:01:13 +0000 (11:01 +0200)
These days exposure happens only on the native windows (generally the
toplevel window) and is propagated down recursively. The expose event
is only useful for backwards compat, and in fact, for double buffered
widgets we totally ignore the event (and non-double buffering breaks
on wayland).

So, by not setting the mask we avoid emitting these events and then
later ignoring them.

We still keep it on eventbox, fixed and layout as these are used
in weird ways that want backwards compat.

24 files changed:
gtk/deprecated/gtkcolorsel.c
gtk/deprecated/gtkhandlebox.c
gtk/deprecated/gtkmisc.c
gtk/gtkcalendar.c
gtk/gtkflowbox.c
gtk/gtkglarea.c
gtk/gtkiconview.c
gtk/gtklistbox.c
gtk/gtkmagnifier.c
gtk/gtkmenu.c
gtk/gtkmenushell.c
gtk/gtknotebook.c
gtk/gtkoverlay.c
gtk/gtkpaned.c
gtk/gtkpopover.c
gtk/gtkrevealer.c
gtk/gtkscrolledwindow.c
gtk/gtkspinbutton.c
gtk/gtkstack.c
gtk/gtktextview.c
gtk/gtktoolitemgroup.c
gtk/gtktoolpalette.c
gtk/gtktreeview.c
gtk/gtkviewport.c

index c0d358b6d62cd91659265178d51b11adb284242d..17fe82029e503ec8f95f99a6873f8f50e9b90ca9 100644 (file)
@@ -1659,7 +1659,6 @@ palette_new (GtkColorSelection *colorsel)
   g_object_set_data (G_OBJECT (retval), I_("color_set"), GINT_TO_POINTER (0));
   gtk_widget_set_events (retval, GDK_BUTTON_PRESS_MASK
                          | GDK_BUTTON_RELEASE_MASK
-                         | GDK_EXPOSURE_MASK
                          | GDK_ENTER_NOTIFY_MASK
                          | GDK_LEAVE_NOTIFY_MASK);
 
index 76f6e6107bd6126098a56090c2518066ce39f306..f254138763156683694045415a3264746c948a00 100644 (file)
@@ -494,8 +494,7 @@ gtk_handle_box_realize (GtkWidget *widget)
   attributes.window_type = GDK_WINDOW_CHILD;
   attributes.wclass = GDK_INPUT_OUTPUT;
   attributes.visual = gtk_widget_get_visual (widget);
-  attributes.event_mask = (gtk_widget_get_events (widget)
-                           | GDK_EXPOSURE_MASK);
+  attributes.event_mask = gtk_widget_get_events (widget);
   attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
 
   window = gdk_window_new (gtk_widget_get_parent_window (widget),
@@ -509,7 +508,6 @@ gtk_handle_box_realize (GtkWidget *widget)
   attributes.height = allocation.height;
   attributes.window_type = GDK_WINDOW_CHILD;
   attributes.event_mask = (gtk_widget_get_events (widget)
-                           | GDK_EXPOSURE_MASK
                            | GDK_BUTTON1_MOTION_MASK
                            | GDK_POINTER_MOTION_HINT_MASK
                            | GDK_BUTTON_PRESS_MASK
index 55eca88ba9db093e6ba7ff5d1b053ccbd251c7bc..8ad92f09abf1c311ca5a1437b117cb4a88ea590e 100644 (file)
@@ -440,7 +440,7 @@ gtk_misc_realize (GtkWidget *widget)
       attributes.height = allocation.height;
       attributes.wclass = GDK_INPUT_OUTPUT;
       attributes.visual = gtk_widget_get_visual (widget);
-      attributes.event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK;
+      attributes.event_mask = gtk_widget_get_events (widget);
       attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
 
       window = gdk_window_new (gtk_widget_get_parent_window (widget), &attributes, attributes_mask);
index 894cd6b85aa8dc6511a5ac6d0c5a16be9bd174bb..42157c2a1e7ff62923ba8cf56ffc73fa91d3041f 100644 (file)
@@ -1638,7 +1638,6 @@ gtk_calendar_realize (GtkWidget *widget)
   attributes.wclass = GDK_INPUT_ONLY;
   attributes.window_type = GDK_WINDOW_CHILD;
   attributes.event_mask = (gtk_widget_get_events (widget)
-                           | GDK_EXPOSURE_MASK
                            | GDK_SCROLL_MASK
                            | GDK_BUTTON_PRESS_MASK
                            | GDK_BUTTON_RELEASE_MASK
index 95d54c22f691583a00fb6d301ddc41fcab24f308..bfd14901559ad3400331218e31677ff1016fed96 100644 (file)
@@ -3086,7 +3086,6 @@ gtk_flow_box_realize (GtkWidget *widget)
                                 | GDK_ENTER_NOTIFY_MASK
                                 | GDK_LEAVE_NOTIFY_MASK
                                 | GDK_POINTER_MOTION_MASK
-                                | GDK_EXPOSURE_MASK
                                 | GDK_KEY_PRESS_MASK
                                 | GDK_BUTTON_PRESS_MASK
                                 | GDK_BUTTON_RELEASE_MASK;
index f357b1009858e64315e54fdcaa4dadfa0b5bbe03..409840974ad8dcc09530a96c4a78dd4c988b6da2 100644 (file)
@@ -284,7 +284,7 @@ gtk_gl_area_realize (GtkWidget *widget)
   attributes.width = allocation.width;
   attributes.height = allocation.height;
   attributes.wclass = GDK_INPUT_ONLY;
-  attributes.event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK;
+  attributes.event_mask = gtk_widget_get_events (widget);
 
   attributes_mask = GDK_WA_X | GDK_WA_Y;
 
index f81b9096cde9572c21ac8c66f55091dd4ef606cd..4dbf096353fadc6d7dc48ef4f8cf8626efbafe9c 100644 (file)
@@ -1300,8 +1300,7 @@ gtk_icon_view_realize (GtkWidget *widget)
   attributes.y = 0;
   attributes.width = MAX (icon_view->priv->width, allocation.width);
   attributes.height = MAX (icon_view->priv->height, allocation.height);
-  attributes.event_mask = (GDK_EXPOSURE_MASK |
-                           GDK_SCROLL_MASK |
+  attributes.event_mask = (GDK_SCROLL_MASK |
                            GDK_SMOOTH_SCROLL_MASK |
                            GDK_POINTER_MOTION_MASK |
                            GDK_LEAVE_NOTIFY_MASK |
index bc4a1e62008379493efdee3f2fae8c03c1efb466..66281f813a232dca34d2f49148c141a3fd59722d 100644 (file)
@@ -2094,7 +2094,7 @@ gtk_list_box_realize (GtkWidget *widget)
   attributes.window_type = GDK_WINDOW_CHILD;
   attributes.event_mask = gtk_widget_get_events (widget) |
     GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_POINTER_MOTION_MASK |
-    GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK;
+    GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK;
   attributes.wclass = GDK_INPUT_OUTPUT;
 
   window = gdk_window_new (gtk_widget_get_parent_window (widget),
index 04f15bc961e5e0140695c8abc315b568bc872b04..e83d3066fef1653274e3e4372da7c8c2ebdcaf84 100644 (file)
@@ -298,8 +298,7 @@ _gtk_magnifier_init (GtkMagnifier *magnifier)
   priv = _gtk_magnifier_get_instance_private (magnifier);
 
   gtk_widget_set_events (widget,
-                         gtk_widget_get_events (widget) |
-                         GDK_EXPOSURE_MASK);
+                         gtk_widget_get_events (widget));
 
   gtk_widget_set_has_window (widget, FALSE);
   priv->magnification = 1;
index b39de7dd2c7a2aa21c225d056eb0e89f01fb8528..61f854195076531470352905bb0421a4a7902446 100644 (file)
@@ -2582,7 +2582,7 @@ gtk_menu_realize (GtkWidget *widget)
   attributes.wclass = GDK_INPUT_OUTPUT;
   attributes.visual = gtk_widget_get_visual (widget);
   attributes.event_mask = gtk_widget_get_events (widget);
-  attributes.event_mask |= (GDK_EXPOSURE_MASK | GDK_KEY_PRESS_MASK |
+  attributes.event_mask |= (GDK_KEY_PRESS_MASK |
                             GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK );
 
   attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
index 80044ef3febf2feb34a08159bcca23a14c7144d5..a56e934bdfe0946bc5654f7c6e3410e5855c630a 100644 (file)
@@ -602,8 +602,7 @@ gtk_menu_shell_realize (GtkWidget *widget)
   attributes.wclass = GDK_INPUT_OUTPUT;
   attributes.visual = gtk_widget_get_visual (widget);
   attributes.event_mask = gtk_widget_get_events (widget);
-  attributes.event_mask |= (GDK_EXPOSURE_MASK |
-                            GDK_BUTTON_PRESS_MASK |
+  attributes.event_mask |= (GDK_BUTTON_PRESS_MASK |
                             GDK_BUTTON_RELEASE_MASK |
                             GDK_POINTER_MOTION_MASK |
                             GDK_KEY_PRESS_MASK |
index 0f631b9764cecbab646810dfd7c776f3b6be8cc2..8048dab4ff884efaeb26beb365b1b6d31b74b876 100644 (file)
@@ -3116,7 +3116,7 @@ show_drag_window (GtkNotebook        *notebook,
       attributes.window_type = GDK_WINDOW_CHILD;
       attributes.wclass = GDK_INPUT_OUTPUT;
       attributes.visual = gtk_widget_get_visual (widget);
-      attributes.event_mask = GDK_VISIBILITY_NOTIFY_MASK | GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK;
+      attributes.event_mask = GDK_VISIBILITY_NOTIFY_MASK | GDK_POINTER_MOTION_MASK;
       attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
 
       priv->drag_window = gdk_window_new (gtk_widget_get_parent_window (widget),
index 1cac3225a524a05097ad27ad3f5effee4c46fba8..661f3d10d6b4f2de619b8d0ac8cad6d43ed04e04 100644 (file)
@@ -151,7 +151,7 @@ gtk_overlay_create_child_window (GtkOverlay *overlay,
   attributes.y = allocation.y;
   attributes.visual = gtk_widget_get_visual (widget);
   attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
-  attributes.event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK;
+  attributes.event_mask = gtk_widget_get_events (widget);
 
   window = gdk_window_new (gtk_widget_get_window (widget),
                            &attributes, attributes_mask);
index e6d230c15f6d5aaaba4f5f5f5b3d248840509a10..f9fb9786aa830d53ccb7bf2cdb3a6d334b16f94e 100644 (file)
@@ -1526,7 +1526,7 @@ gtk_paned_create_child_window (GtkPaned  *paned,
 
   attributes.window_type = GDK_WINDOW_CHILD;
   attributes.wclass = GDK_INPUT_OUTPUT;
-  attributes.event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK;
+  attributes.event_mask = gtk_widget_get_events (widget);
   attributes.visual = gtk_widget_get_visual (widget);
   if (child)
     {
index 86eda36bf16b4f68516e59b2589771533b63b99c..969717ba1699b7e5fc1004b9342e66845d5da5ee 100644 (file)
@@ -345,7 +345,6 @@ gtk_popover_realize (GtkWidget *widget)
     GDK_BUTTON_MOTION_MASK |
     GDK_BUTTON_PRESS_MASK |
     GDK_BUTTON_RELEASE_MASK |
-    GDK_EXPOSURE_MASK |
     GDK_ENTER_NOTIFY_MASK |
     GDK_LEAVE_NOTIFY_MASK;
 
index 20ff0dcc63825047f2b1b74e256cd273d2d4916e..424840aec3d54d5ddff66d3408396afa67876a50 100644 (file)
@@ -367,7 +367,7 @@ gtk_revealer_real_realize (GtkWidget *widget)
   attributes.wclass = GDK_INPUT_OUTPUT;
   attributes.visual = gtk_widget_get_visual (widget);
   attributes.event_mask =
-    gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK;
+    gtk_widget_get_events (widget);
   attributes_mask = (GDK_WA_X | GDK_WA_Y) | GDK_WA_VISUAL;
 
   priv->view_window =
index bc29e9d1bd8a5d140cfbb01a0f0a4078c69fbf05..c97a6f2c6dbe1cb3d9371189f31dc6417ae1cff7 100644 (file)
@@ -3936,7 +3936,7 @@ create_indicator_window (GtkScrolledWindow *scrolled_window,
   attributes.y = allocation.y;
   attributes.visual = gtk_widget_get_visual (widget);
   attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
-  attributes.event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK;
+  attributes.event_mask = gtk_widget_get_events (widget);
 
   window = gdk_window_new (gtk_widget_get_window (widget),
                            &attributes, attributes_mask);
@@ -4226,7 +4226,7 @@ gtk_scrolled_window_realize (GtkWidget *widget)
   attributes.y = allocation.y;
   attributes.visual = gtk_widget_get_visual (widget);
   attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
-  attributes.event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK |
+  attributes.event_mask = gtk_widget_get_events (widget) |
     GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_POINTER_MOTION_MASK;
 
   window = gdk_window_new (gtk_widget_get_parent_window (widget),
index 649ad5af4258e63fb7e5cf3c5310f3f5abd3c01b..bac8bdeb23369fc302d14c258e6f673511f30d64 100644 (file)
@@ -1093,7 +1093,7 @@ gtk_spin_button_realize (GtkWidget *widget)
   attributes.wclass = GDK_INPUT_ONLY;
   attributes.visual = gtk_widget_get_visual (widget);
   attributes.event_mask = gtk_widget_get_events (widget);
-  attributes.event_mask |= GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK
+  attributes.event_mask |= GDK_BUTTON_PRESS_MASK
     | GDK_BUTTON_RELEASE_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_ENTER_NOTIFY_MASK
     | GDK_POINTER_MOTION_MASK;
 
index 7764af3a8e946f88e90e27851f995a7f707652e9..a769abd8ebafe0aef31b2c0154cbd734e4ba86d3 100644 (file)
@@ -343,7 +343,7 @@ gtk_stack_realize (GtkWidget *widget)
   attributes.wclass = GDK_INPUT_OUTPUT;
   attributes.visual = gtk_widget_get_visual (widget);
   attributes.event_mask =
-    gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK;
+    gtk_widget_get_events (widget);
   attributes_mask = (GDK_WA_X | GDK_WA_Y) | GDK_WA_VISUAL;
 
   priv->view_window =
index 697d63f53ee7834ebb682f18a89e7d749a341018..e9860d79e42119354e6fe97fddbd72f6c60585aa 100644 (file)
@@ -4602,7 +4602,7 @@ gtk_text_view_realize (GtkWidget *widget)
   attributes.height = allocation.height;
   attributes.wclass = GDK_INPUT_OUTPUT;
   attributes.visual = gtk_widget_get_visual (widget);
-  attributes.event_mask = GDK_VISIBILITY_NOTIFY_MASK | GDK_EXPOSURE_MASK;
+  attributes.event_mask = GDK_VISIBILITY_NOTIFY_MASK;
 
   attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
 
@@ -9814,7 +9814,6 @@ text_window_realize (GtkTextWindow *win,
   attributes.width = win->allocation.width;
   attributes.height = win->allocation.height;
   attributes.event_mask = gtk_widget_get_events (win->widget)
-                          | GDK_EXPOSURE_MASK
                           | GDK_SCROLL_MASK
                           | GDK_SMOOTH_SCROLL_MASK
                           | GDK_KEY_PRESS_MASK
index 785785d641749a3a615787a28c6243cee5541917..719ccff23dacbb0241b0f9450c5d7a8c5b4937ed 100644 (file)
@@ -1229,7 +1229,7 @@ gtk_tool_item_group_realize (GtkWidget *widget)
   attributes.wclass = GDK_INPUT_OUTPUT;
   attributes.visual = gtk_widget_get_visual (widget);
   attributes.event_mask = gtk_widget_get_events (widget)
-                         | GDK_VISIBILITY_NOTIFY_MASK | GDK_EXPOSURE_MASK
+                         | GDK_VISIBILITY_NOTIFY_MASK
                          | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
                          | GDK_BUTTON_MOTION_MASK;
   attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
index 70ca79f9c4dc2f966360be661fec537fcc35151c..82e76375da06faa42b51218d8b3177f3b51f6d98 100644 (file)
@@ -728,7 +728,7 @@ gtk_tool_palette_realize (GtkWidget *widget)
   attributes.wclass = GDK_INPUT_OUTPUT;
   attributes.visual = gtk_widget_get_visual (widget);
   attributes.event_mask = gtk_widget_get_events (widget)
-                         | GDK_VISIBILITY_NOTIFY_MASK | GDK_EXPOSURE_MASK
+                         | GDK_VISIBILITY_NOTIFY_MASK
                          | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
                          | GDK_BUTTON_MOTION_MASK
                          | GDK_SCROLL_MASK | GDK_SMOOTH_SCROLL_MASK
index 852bc3c46ff47de0bd601ba01f424da4dd1ea6be..3eec8e4ae4fbc2ac43e8ac7de507068700df2398 100644 (file)
@@ -2412,8 +2412,7 @@ gtk_tree_view_realize (GtkWidget *widget)
   attributes.y = gtk_tree_view_get_effective_header_height (tree_view);
   attributes.width = MAX (tree_view->priv->width, allocation.width);
   attributes.height = allocation.height;
-  attributes.event_mask = (GDK_EXPOSURE_MASK |
-                           GDK_SCROLL_MASK |
+  attributes.event_mask = (GDK_SCROLL_MASK |
                            GDK_SMOOTH_SCROLL_MASK |
                            GDK_POINTER_MOTION_MASK |
                            GDK_ENTER_NOTIFY_MASK |
@@ -2435,8 +2434,7 @@ gtk_tree_view_realize (GtkWidget *widget)
   attributes.y = 0;
   attributes.width = MAX (tree_view->priv->width, allocation.width);
   attributes.height = tree_view->priv->header_height;
-  attributes.event_mask = (GDK_EXPOSURE_MASK |
-                           GDK_SCROLL_MASK |
+  attributes.event_mask = (GDK_SCROLL_MASK |
                            GDK_ENTER_NOTIFY_MASK |
                            GDK_LEAVE_NOTIFY_MASK |
                            GDK_BUTTON_PRESS_MASK |
@@ -3951,7 +3949,7 @@ gtk_tree_view_motion_draw_column_motion_arrow (GtkTreeView *tree_view)
          width = attributes.width = drag_allocation.width;
          height = attributes.height = drag_allocation.height;
          attributes.visual = gdk_screen_get_rgba_visual (gtk_widget_get_screen (widget));
-         attributes.event_mask = GDK_VISIBILITY_NOTIFY_MASK | GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK;
+         attributes.event_mask = GDK_VISIBILITY_NOTIFY_MASK | GDK_POINTER_MOTION_MASK;
          attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
          tree_view->priv->drag_highlight_window = gdk_window_new (tree_view->priv->header_window, &attributes, attributes_mask);
          gtk_widget_register_window (GTK_WIDGET (tree_view), tree_view->priv->drag_highlight_window);
@@ -3997,7 +3995,7 @@ gtk_tree_view_motion_draw_column_motion_arrow (GtkTreeView *tree_view)
          attributes.window_type = GDK_WINDOW_TEMP;
          attributes.wclass = GDK_INPUT_OUTPUT;
          attributes.visual = gtk_widget_get_visual (GTK_WIDGET (tree_view));
-         attributes.event_mask = GDK_VISIBILITY_NOTIFY_MASK | GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK;
+         attributes.event_mask = GDK_VISIBILITY_NOTIFY_MASK | GDK_POINTER_MOTION_MASK;
          attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
           attributes.x = x;
           attributes.y = y;
@@ -4078,7 +4076,7 @@ gtk_tree_view_motion_draw_column_motion_arrow (GtkTreeView *tree_view)
          attributes.window_type = GDK_WINDOW_TEMP;
          attributes.wclass = GDK_INPUT_OUTPUT;
          attributes.visual = gtk_widget_get_visual (GTK_WIDGET (tree_view));
-         attributes.event_mask = GDK_VISIBILITY_NOTIFY_MASK | GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK;
+         attributes.event_mask = GDK_VISIBILITY_NOTIFY_MASK | GDK_POINTER_MOTION_MASK;
          attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
           attributes.x = x;
           attributes.y = y;
@@ -10041,7 +10039,7 @@ _gtk_tree_view_column_start_drag (GtkTreeView       *tree_view,
   attributes.width = button_allocation.width;
   attributes.height = button_allocation.height;
   attributes.visual = gtk_widget_get_visual (GTK_WIDGET (tree_view));
-  attributes.event_mask = GDK_VISIBILITY_NOTIFY_MASK | GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK;
+  attributes.event_mask = GDK_VISIBILITY_NOTIFY_MASK | GDK_POINTER_MOTION_MASK;
   attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
 
   tree_view->priv->drag_window = gdk_window_new (tree_view->priv->header_window,
index 9b966052a615e4b786bffd9255cf90c99900ae84..f885292b159ed261b71d8a8aa83bb80b11917f3b 100644 (file)
@@ -747,7 +747,7 @@ gtk_viewport_realize (GtkWidget *widget)
   attributes.wclass = GDK_INPUT_OUTPUT;
   attributes.visual = gtk_widget_get_visual (widget);
 
-  event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK;
+  event_mask = gtk_widget_get_events (widget);
 
   attributes.event_mask = event_mask | GDK_SCROLL_MASK | GDK_TOUCH_MASK | GDK_SMOOTH_SCROLL_MASK;